<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        let Queue = (function(){
            let symbol = Symbol()  //它的功能类似于一种标识唯一性的ID
            return class {
            constructor(){
                this[symbol] = []
            }

            //入队
            enqueue(item){
                this[symbol].push(item)
            }

            //出队 shift() 方法用于把数组的第一个元素从其中删除，并返回第一个元素的值
            dequeue(){
                return this[symbol].shift()
            }

            clear(){
                this[symbol] = []
            }

            size(){
                return this[symbol].length
            }

            print(){
             this[symbol].forEach(value => {
                 console.log(value)
             });  
            }
            }
        })()

        let q1 = new Queue()
        q1.enqueue('tina')
        q1.enqueue('nana')
        
        // q1.print()
        q1.dequeue()
      
        q1.print()

    </script>
</body>
</html>